<!-- subpkg_consult/description/index.vue -->
<script lang="ts" setup>
import { ref } from 'vue';
import { uploadImgApi } from '@/apis/consult';
import type { Picture } from '@/types/consult';

// 1， 表单数据
const formData = ref({
  illnessDesc: '', // 病情描述
  illnessTime: 1, // 患病时间
  consultFlag: 0, // 是否就诊
  picture: [] as Picture[] // 图片数组
})
// 2. 患病时长
const illnessTimes = [
  { value: 1, text: '一周内' },
  { value: 2, text: '一月内' },
  { value: 3, text: '半年内' },
  { value: 4, text: '半年以上' },
]

//点击病情时长
const onTimeTagClick = (value: number)=>{
   formData.value.illnessTime = value
}
 // 是否就诊过
 const consultFlags = [
    { value: 1, text: '就诊过' },
    { value: 0, text: '没有就诊过' },
  ]
  //点击是否就诊
  const onFlagTagClick=(value:number)=>{
    formData.value.consultFlag = value
  }
  // 4. 选择图片
const onSelectImg =async (e: UniHelper.UniFilePickerOnSelectEvent)=>{
  const res = await uploadImgApi(e.tempFiles[0])
  formData.value.picture.push(res)
}
// 5. 删除图片
const onDeleteImg = (e: niHelper.UniFilePickerOnSelectEvent)=>{
  formData.value.picture.splice(e.index, 1)
}
</script>

<template>
  <scroll-page>
    <view class="description-page">
      <!-- 在线医生 -->
      <view class="doctor-online">
        <image
          src="/static/uploads/doctor-avatar-2.png"
          class="doctor-avatar"
        />
        <view class="doctor-info">
          <view class="name">在线医生</view>
          <view class="message">
            请描述你的疾病或症状、是否用药、就诊经历，需要我听过什么样的帮助
          </view>
          <view class="tips">
            <text class="iconfont icon-shield"></text>
            内容仅医生可见
          </view>
        </view>
      </view>
      <!-- 患者信息 -->
      <view class="patient-info">
        <view class="description">
          <uni-easyinput
           v-model="formData.illnessDesc"
            type="textarea"
            :input-border="false"
            placeholder-style="font-size: 30rpx; color: #979797"
            placeholder="请详细描述您的病情,病情描述不能为空"
          />
        </view>

        <view class="title">本次患病多久了？</view>
        <view class="tags">
          <text 
          class="tag" 
          :class="{ active: formData.illnessTime === item.value }" 
          v-for="(item, index) in illnessTimes" 
          :key="index" 
          @click="onTimeTagClick(item.value)"
          >
          {{ item.text }}
          </text>
        </view>

        <view class="title">此次病情是否去医院就诊过？</view>
        <view class="tags">
          <text v-for="(item, index) in consultFlags" :key="index" class="tag"
            :class="{active: item.value === formData.consultFlag}" @click="onFlagTagClick(item.value)">{{ item.text
            }}</text>
        </view>
      </view>
      <!-- 上传图片 -->
      <view class="patient-picture">
         <!-- @vue-ignore -->
         <uni-file-picker :value="formData.pictures" title="上传病情相关图片 (仅医生可见)" limit="9" :image-styles="{ width: '160rpx', height: '160rpx' }"
          file-extname="png,jpg,gif,webp" :auto-upload="false" @select="onSelectImg" @delete="onDeleteImg" />
      </view>
    </view>
    <!-- 下一步操作 -->
    <view class="next-step">
      <button class="uni-button">下一步</button>
    </view>
  </scroll-page>
</template>

<style lang="scss">
  @import './index.scss';
</style>